package com.itheima.polymorphsm2;

import com.itheima.polymorphsm.Animal;
import com.itheima.polymorphsm.Tortoise;
import com.itheima.polymorphsm.Wolf;

public class Test {
    public static void main(String[] args) {
        //目标:认识多态代码
        //1.多态的好处1:右边对象是解耦合(随时可换)
        Animal a1=new Tortoise();       //狼或乌龟都行
        a1.run();
        //a1.shrinkHead();   报错,多态下不能调用子类特有的功能
                            //编译看左边,Animal里没shinkHead

        Animal a2=new Wolf();
        a2.run();

        //多态好处2:父类类型的变量作为参数(Animal),可以接收一切子类对象(Wolf,Tortoise)
        Wolf w=new Wolf();
        go(w);

        Tortoise t=new Tortoise();
        go(t);

    }

    //宠物游戏:所有动物都可以选择这个方法开始跑步
    public static void go(Animal a){
        System.out.println("----------开始----------");
        a.run();
    }
}
